home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / QuickTimeComponents.idl < prev    next >
Text File  |  1996-05-01  |  14KB  |  464 lines

  1. /*
  2.      File:        QuickTimeComponents.idl
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.1
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __QUICKTIMECOMPONENTS_IDL__
  19. #define __QUICKTIMECOMPONENTS_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __COMPONENTS_IDL__
  25. #include <Components.idl>
  26. #endif
  27. #ifndef __IMAGECOMPRESSION_IDL__
  28. #include <ImageCompression.idl>
  29. #endif
  30. #ifndef __MOVIES_IDL__
  31. #include <Movies.idl>
  32. #endif
  33. #ifndef __QUICKDRAW_IDL__
  34. #include <Quickdraw.idl>
  35. #endif
  36. #ifndef __VIDEO_IDL__
  37. #include <Video.idl>
  38. #endif
  39. #ifndef __MEMORY_IDL__
  40. #include <Memory.idl>
  41. #endif
  42. #ifndef __SOUND_IDL__
  43. #include <Sound.idl>
  44. #endif
  45.  
  46. #ifdef __SOMIDL__
  47.  
  48. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  49. /** These are Clock procedures **/
  50. /*
  51.     General Sequence Grab stuff
  52. */
  53. typedef ComponentInstance        SeqGrabComponent;
  54.  
  55. typedef ComponentInstance        SGChannel;
  56.  
  57. typedef unsigned long            SeqGrabDataOutputEnum;
  58.  
  59. typedef unsigned long            SeqGrabUsageEnum;
  60.  
  61. typedef unsigned long            SeqGrabChannelInfoEnum;
  62.  
  63. typedef SOMLargeStruct            SeqGrabFrameInfo;            /* Derived from a struct of 20 bytes in size */
  64.  
  65. typedef OpaquePtr                SeqGrabFrameInfoPtr;        /* Substituted OpaquePtr for ``SeqGrabFrameInfo*'' */
  66.  
  67. typedef OpaquePtr SGDataProcPtr;
  68. typedef OpaquePtr SGDataUPP;
  69. typedef SOMLargeStruct            SGDeviceName;                /* Derived from a struct of 80 bytes in size */
  70.  
  71. typedef SOMLargeStruct            SGDeviceListRecord;            /* Derived from a struct of 88 bytes in size */
  72.  
  73. typedef OpaquePtr                SGDeviceListPtr;            /* Substituted OpaquePtr for ``SGDeviceListRecord*'' */
  74.  
  75. typedef OpaquePtr                SGDeviceList;                /* Substituted OpaquePtr for ``SGDeviceListPtr*'' */
  76.  
  77. typedef OpaquePtr SGModalFilterProcPtr;
  78. typedef OpaquePtr SGModalFilterUPP;
  79. typedef SOMFourByteStruct        SGOutputRecord;                /* Derived from a struct of 4 bytes in size */
  80.  
  81. typedef OpaquePtr                SGOutput;                    /* Substituted OpaquePtr for ``SGOutputRecord*'' */
  82.  
  83. #endif
  84. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  85. #endif
  86. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  87. /*
  88.     calls from Channel to seqGrab
  89. */
  90. /*** Sequence Grab CHANNEL Component Stuff ***/
  91. /*
  92.     calls from seqGrab to Channel
  93. */
  94. /*
  95.     Dorky dialog panel calls
  96. */
  97. /*** Sequence Grab VIDEO CHANNEL Component Stuff ***/
  98. /*
  99.     Video stuff
  100. */
  101. typedef SOMLargeStruct            SGCompressInfo;                /* Derived from a struct of 10 bytes in size */
  102.  
  103. typedef OpaquePtr SGGrabProcPtr;
  104. typedef OpaquePtr SGGrabUPP;
  105. typedef OpaquePtr SGGrabCompleteProcPtr;
  106. typedef OpaquePtr SGGrabCompleteUPP;
  107. typedef OpaquePtr SGDisplayProcPtr;
  108. typedef OpaquePtr SGDisplayUPP;
  109. typedef OpaquePtr SGCompressProcPtr;
  110. typedef OpaquePtr SGCompressUPP;
  111. typedef OpaquePtr SGCompressCompleteProcPtr;
  112. typedef OpaquePtr SGCompressCompleteUPP;
  113. typedef OpaquePtr SGAddFrameProcPtr;
  114. typedef OpaquePtr SGAddFrameUPP;
  115. typedef OpaquePtr SGTransferFrameProcPtr;
  116. typedef OpaquePtr SGTransferFrameUPP;
  117. typedef OpaquePtr SGGrabCompressCompleteProcPtr;
  118. typedef OpaquePtr SGGrabCompressCompleteUPP;
  119. typedef OpaquePtr SGDisplayCompressProcPtr;
  120. typedef OpaquePtr SGDisplayCompressUPP;
  121. typedef SOMLargeStruct            VideoBottles;                /* Derived from a struct of 38 bytes in size */
  122.  
  123. /*** Sequence Grab SOUND CHANNEL Component Stuff ***/
  124. /*
  125.     Sound stuff
  126. */
  127. /* Standard type for video digitizers */
  128. /* Input Format Standards */
  129. /* Input Formats */
  130. /* Video Digitizer PlayThru States */
  131. /* Input Color Space Modes */
  132. /* Phase Lock Loop Modes */
  133. /* Field Select Options */
  134. /* vdig types */
  135. /* Digitizer Input Capability/Current Flags    */
  136. /* Digitizer Output Capability/Current Flags */
  137. /* Types */
  138. typedef ComponentInstance        VideoDigitizerComponent;
  139.  
  140. typedef ComponentResult            VideoDigitizerError;
  141.  
  142. typedef SOMLargeStruct            DigitizerInfo;                /* Derived from a struct of 42 bytes in size */
  143.  
  144. typedef SOMLargeStruct            VdigType;                    /* Derived from a struct of 8 bytes in size */
  145.  
  146. typedef SOMLargeStruct            VdigTypeList;                /* Derived from a struct of 10 bytes in size */
  147.  
  148. typedef SOMLargeStruct            VdigBufferRec;                /* Derived from a struct of 12 bytes in size */
  149.  
  150. typedef SOMLargeStruct            VdigBufferRecList;            /* Derived from a struct of 22 bytes in size */
  151.  
  152. typedef OpaquePtr                VdigBufferRecListPtr;        /* Substituted OpaquePtr for ``VdigBufferRecList*'' */
  153.  
  154. typedef OpaquePtr                VdigBufferRecListHandle;    /* Substituted OpaquePtr for ``VdigBufferRecListPtr*'' */
  155.  
  156. typedef OpaquePtr VdigIntProcPtr;
  157. typedef OpaquePtr VdigIntUPP;
  158. typedef SOMLargeStruct            VDCompressionList;            /* Derived from a struct of 148 bytes in size */
  159.  
  160. typedef OpaquePtr                VDCompressionListPtr;        /* Substituted OpaquePtr for ``VDCompressionList*'' */
  161.  
  162. typedef OpaquePtr                VDCompressionListHandle;    /* Substituted OpaquePtr for ``VDCompressionListPtr*'' */
  163.  
  164. /* number of vdig calls*/
  165. /* 83 is reserved for compatibility reasons */
  166. typedef OpaquePtr SCModalFilterProcPtr;
  167. typedef OpaquePtr SCModalFilterUPP;
  168. typedef OpaquePtr SCModalHookProcPtr;
  169. typedef OpaquePtr SCModalHookUPP;
  170. /*    Preference flags.*/
  171. /*    Possible test flags for setting test image.*/
  172. /*    Dimensions of the image preview box.*/
  173. /*    Possible items returned by hookProc.*/
  174. /*    Result returned when user cancelled.*/
  175. /* Component selectors*/
  176. /*    Get/SetInfo structures.*/
  177. typedef SOMLargeStruct            SCSpatialSettings;            /* Derived from a struct of 14 bytes in size */
  178.  
  179. typedef SOMLargeStruct            SCTemporalSettings;            /* Derived from a struct of 12 bytes in size */
  180.  
  181. typedef SOMLargeStruct            SCDataRateSettings;            /* Derived from a struct of 16 bytes in size */
  182.  
  183. typedef SOMLargeStruct            SCExtendedProcs;            /* Derived from a struct of 44 bytes in size */
  184.  
  185. /*    Get/SetInfo selectors*/
  186. /*    scTypeNotFoundErr returned by Get/SetInfo when type cannot be found.*/
  187. /** These are Progress procedures **/
  188. typedef SOMLargeStruct            SCParams;                    /* Derived from a struct of 38 bytes in size */
  189.  
  190. typedef ComponentInstance        MovieImportComponent;
  191.  
  192. typedef ComponentInstance        MovieExportComponent;
  193.  
  194. /* Text Export Display Info data structure*/
  195. typedef SOMLargeStruct            TextDisplayData;            /* Derived from a struct of 44 bytes in size */
  196.  
  197. typedef ComponentInstance        TextExportComponent;
  198.  
  199. /*
  200. **************
  201.  
  202.     File Preview Components
  203.  
  204. **************
  205. */
  206. typedef ComponentInstance        pnotComponent;
  207.  
  208. typedef OpaquePtr DataHCompletionProcPtr;
  209. typedef OpaquePtr DataHCompletionUPP;
  210. typedef SOMLargeStruct            DataHVolumeListRecord;        /* Derived from a struct of 6 bytes in size */
  211.  
  212. typedef OpaquePtr                DataHVolumeListPtr;            /* Substituted OpaquePtr for ``DataHVolumeListRecord*'' */
  213.  
  214. typedef OpaquePtr                DataHVolumeList;            /* Substituted OpaquePtr for ``DataHVolumeListPtr*'' */
  215.  
  216. typedef SOMLargeStruct            DataHScheduleRecord;        /* Derived from a struct of 28 bytes in size */
  217.  
  218. typedef OpaquePtr                DataHSchedulePtr;            /* Substituted OpaquePtr for ``DataHScheduleRecord*'' */
  219.  
  220. typedef ComponentInstance        MusicComponent;
  221.  
  222. /* MusicSynthesizerFlags*/
  223. /*
  224.  * Note that these controller numbers
  225.  * are _not_ identical to the MIDI controller numbers.
  226.  * These are _signed_ 8.8 values, and the LSB's are
  227.  * always sent to a MIDI device. Controllers 32-63 are
  228.  * reserved (for MIDI, they are LSB's for 0-31, but we
  229.  * always send both).
  230.  *
  231.  * The full range, therefore, is -128.00 to 127.7f.
  232.  *
  233.  * _Excepting_ _volume_, all controls default to zero.
  234.  *
  235.  * Pitch bend is specified in fractional semitones! No
  236.  * more "pitch bend range" nonsense. You can bend as far
  237.  * as you want, any time you want.
  238. */
  239. typedef SOMLargeStruct            SynthesizerDescription;        /* Derived from a struct of 132 bytes in size */
  240.  
  241. typedef SOMLargeStruct            ToneDescription;            /* Derived from a struct of 76 bytes in size */
  242.  
  243. /* InstrumentMatch*/
  244. /* KnobFlags*/
  245. typedef SOMLargeStruct            KnobDescription;            /* Derived from a struct of 48 bytes in size */
  246.  
  247. typedef SOMLargeStruct            InstrumentData;                /* Derived from a struct of 84 bytes in size */
  248.  
  249. typedef OpaquePtr                InstrumentDataPtr;            /* Substituted OpaquePtr for ``InstrumentData*'' */
  250.  
  251. typedef OpaquePtr                InstrumentDataHandle;        /* Substituted OpaquePtr for ``InstrumentDataPtr*'' */
  252.  
  253. typedef SOMLargeStruct            FlatInstrument;                /* Derived from a struct of 84 bytes in size */
  254.  
  255. typedef SOMLargeStruct            InstrumentAboutInfo;        /* Derived from a struct of 772 bytes in size */
  256.  
  257. typedef SOMLargeStruct            MusicMIDIPacket;            /* Derived from a struct of 255 bytes in size */
  258.  
  259. typedef OpaquePtr MusicMIDISendProcPtr;
  260. typedef OpaquePtr MusicMIDISendUPP;
  261. /*--------------------------------*/
  262. /*
  263. -----------------------------------------
  264.     Capabilities and Voice Allocation
  265. -----------------------------------------
  266. */
  267. /*
  268. -----------------------------------------
  269.     Instrument Loading and Storing
  270. -----------------------------------------
  271. */
  272. /*
  273. -----------------------------------------
  274.     Instrument Knobs
  275. -----------------------------------------
  276. */
  277. /*
  278. -----------------------------------------
  279.     Synthesizer Knobs
  280. -----------------------------------------
  281. */
  282. /*
  283. -----------------------------------------
  284.     Names of Instruments
  285. -----------------------------------------
  286. */
  287. /*
  288. -----------------------------------------
  289.     Realtime Actions
  290. -----------------------------------------
  291. */
  292. /*
  293. -----------------------------------------
  294.     Finding the Hardware
  295. -----------------------------------------
  296. */
  297. /*
  298. --------------------------
  299.     Types
  300. --------------------------
  301. */
  302. typedef SOMFourByteStruct        NoteChannelRecord;            /* Derived from a struct of 4 bytes in size */
  303.  
  304. typedef OpaquePtr                NoteChannel;                /* Substituted OpaquePtr for ``NoteChannelRecord*'' */
  305.  
  306. /* used for MIDI device only */
  307. typedef SOMLargeStruct            SynthesizerConnections;        /* Derived from a struct of 32 bytes in size */
  308.  
  309. typedef SOMLargeStruct            NoteRequest;                /* Derived from a struct of 84 bytes in size */
  310.  
  311. typedef ComponentInstance        NoteAllocator;
  312.  
  313. typedef OpaquePtr MusicMIDIReadHookProcPtr;
  314. typedef OpaquePtr MusicMIDIReadHookUPP;
  315. /*
  316. --------------------------------
  317.     Note Allocator Prototypes
  318. --------------------------------
  319. */
  320. /*
  321.  * System Configuration
  322. */
  323. /*
  324.  * Allocation
  325. */
  326. /*
  327.  * Setup
  328. */
  329. /*
  330.  * Control
  331. */
  332. #endif
  333. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  334. /*
  335.  * User Interface
  336. */
  337. #endif
  338. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  339. /*
  340.  * Note Allocator interior views
  341. */
  342. typedef SOMLargeStruct            NAStatPiece;                /* Derived from a struct of 80 bytes in size */
  343.  
  344. typedef SOMLargeStruct            NAStat;                        /* Derived from a struct of 5124 bytes in size */
  345.  
  346. /*
  347. --------------------------
  348.     Types
  349. --------------------------
  350. */
  351. typedef SOMLargeStruct            TuneStatus;                    /* Derived from a struct of 32 bytes in size */
  352.  
  353. typedef OpaquePtr TuneCallBackProcPtr;
  354. typedef OpaquePtr TuneCallBackUPP;
  355. typedef OpaquePtr TunePlayCallBackProcPtr;
  356. typedef OpaquePtr TunePlayCallBackUPP;
  357. typedef ComponentInstance        TunePlayer;
  358.  
  359. /*
  360. --------------------------
  361.     Prototypes
  362. --------------------------
  363. */
  364. /* Values for when to start. */
  365. /* Values for when to start. */
  366. typedef unsigned long            MusicOpWord;
  367.  
  368. typedef OpaquePtr                MusicOpWordPtr;                /* Substituted OpaquePtr for ``unsigned long*'' */
  369.  
  370. /*
  371.      QuickTime Music Track Event Formats:
  372.  
  373.     At this time, QuickTime music tracks support 5 different event types -- REST events,
  374.     short NOTE events, short CONTROL events, short GENERAL events, Long NOTE events, 
  375.     long CONTROL events, and variable GENERAL events.
  376.  
  377.         * REST Event (4 bytes/event):
  378.     
  379.             (0 0 0) (5-bit UNUSED) (24-bit Rest Duration)
  380.         
  381.         *†Short NOTE Events (4 bytes/event):
  382.     
  383.             (0 0 1) (5-bit Instrument) (6-bit Pitch) (7-bit Volume) (11-bit Duration)
  384.         
  385.             where:    Pitch is offset by 32 (Actual pitch = pitch field + 32)
  386.  
  387.         *†Short CONTROL Events (4 bytes/event):
  388.     
  389.             (0 1 0) (5-bit Instrument) (8-bit Controller) (1-bit UNUSED) (1-bit Sign) (7-bit MSB) (7-bit LSB)
  390.                                                                          ( or 15-bit Signed Value)
  391.         * Short GENERAL Event (4 bytes/event):
  392.     
  393.             (0 1 1) (1-bit UNUSED) (12-bit Sub-Type) (16-bit Value)
  394.     
  395.         * Long NOTE Events (8 bytes/event):
  396.     
  397.             (1 0 0 1) (12-bit Instrument) (1-bit UNUSED) (7-bit Pitch) (1-bit UNUSED) (7-bit Volume)
  398.             (1 0) (8-bit UNUSED) (22-bit Duration)
  399.         
  400.         *†Long CONTROL Event (8 bytes/event):
  401.         
  402.             (1 0 1 0) (12-bit Instrument) (16-bit Value MSB) 
  403.             (1 0) (14-bit Controller) (16-bit Value LSB)
  404.     
  405.         *†Long KNOB Event (8 bytes/event):
  406.     
  407.             (1 0 1 1) (12-bit Sub-Type) (16-bit Value MSB)
  408.             (1 0) (14-bit KNOB) (16-bit Value LSB)
  409.     
  410.         *†Variable GENERAL Length Events (N bytes/event):
  411.     
  412.             (1 1 1 1) (12-bit Sub-Type) (16-bit Length)
  413.                 :
  414.             (32-bit Data values)
  415.                 :
  416.             (1 1) (14-bit UNUSED) (16-bit Length)
  417.     
  418.             where:    Length field is the number of LONG words in the record.
  419.                     Lengths include the first and last long words (Minimum length = 2)
  420.                 
  421.     The following event type values have not been used yet and are reserved for 
  422.     future expansion:
  423.         
  424.         * (1 0 0 0)        (8 bytes/event)
  425.         * (1 1 0 0)        (N bytes/event)
  426.         * (1 1 0 1)        (N bytes/event)
  427.         * (1 1 1 0)        (N bytes/event)
  428.         
  429.     For all events, the following generalizations apply:
  430.     
  431.         -    All duration values are specified in Millisecond units.
  432.         -     Pitch values are intended to map directly to the MIDI key numbers.
  433.         -    Controllers from 0 to 127 correspond to the standard MIDI controllers.
  434.             Controllers greater than 127 correspond to other controls (i.e., Pitch Bend, 
  435.             Key Pressure, and Channel Pressure).    
  436. */
  437. /* Defines for the implemented music event data fields*/
  438. /* General Event Defined Types*/
  439. typedef SOMLargeStruct            TimeCodeDef;                /* Derived from a struct of 14 bytes in size */
  440.  
  441. typedef SOMFourByteStruct        TimeCodeTime;                /* Derived from a struct of 4 bytes in size */
  442.  
  443. typedef SOMFourByteStruct        TimeCodeCounter;            /* Derived from a struct of 4 bytes in size */
  444.  
  445. typedef SOMLargeStruct            TimeCodeRecord;                /* Derived from a struct of 8 bytes in size */
  446.  
  447. typedef SOMLargeStruct            TimeCodeDescription;        /* Derived from a struct of 38 bytes in size */
  448.  
  449. typedef OpaquePtr                TimeCodeDescriptionPtr;        /* Substituted OpaquePtr for ``TimeCodeDescription*'' */
  450.  
  451. typedef OpaquePtr                TimeCodeDescriptionHandle;    /* Substituted OpaquePtr for ``TimeCodeDescriptionPtr*'' */
  452.  
  453. typedef SOMLargeStruct            TCTextOptions;                /* Derived from a struct of 18 bytes in size */
  454.  
  455. typedef OpaquePtr                TCTextOptionsPtr;            /* Substituted OpaquePtr for ``TCTextOptions*'' */
  456.  
  457. /* UPP call backs */
  458. #endif
  459.  
  460. #endif /* __SOMIDL__ */
  461.  
  462. #endif /* __QUICKTIMECOMPONENTS_IDL__ */
  463.  
  464.